/**
字符串类型的循环队列
*/
#ifndef SQ_QUQUE_  						//这句是用于防止多次引用头文件导致问题
#define SQ_QUQUE_  						//这句是用于防止多次引用头文件导致问题
#include <stdio.h>
#include <stdbool.h>


#define MAXSIZE 20
typedef char* String;
typedef struct 
{
	String data[MAXSIZE];
	int front;							//队头指针
	int rear;							//对尾指针
} SqQueue;

 
int InitQueue(SqQueue *Q);				//初始化操作，建立一个空队列Q
int DestroyQueue(SqQueue *Q); 			//若队列Q存在，则销毁它
int ClearQueue(SqQueue *Q);				//将队列Q清空
bool QueueEmpty(SqQueue Q);				//若队列Q为空，返回true，否则返回false	
int GetHead(SqQueue Q,String *e);		//若队列Q存在且非空，用e返回队列Q的队头元素
int EnQueue(SqQueue *Q,String *e);		//若队列Q存在，插入新元素e到队列Q中并成为队尾元素
int Dequeue(SqQueue *Q,String *e);		//删除队列Q中队头元素，并用e返回其值
int QueueLength(SqQueue Q);				//返回队列Q的元素个数

#endif
